﻿//申明数组，A-Z对应的数字
var my_letter_array = new Array(10,12,13,14,15,16,17,18,19,20,21,23,24,25,26,27,28,29,30,31,32,34,35,36,37,38);
var repeat_validate_array = new Array();
function validate_box(obj)
{
	if(obj.value == "" || obj.value == null)
	{
		return;
	}
	//转化为大写字母
	obj.value = obj.value.toUpperCase();
	repeat_validate_array[repeat_validate_array.length] = obj.value;
	var _ce_boxNum = obj.value;
	
	//正则表达式判断4个字母7个数字
	var patrn=/^[A-Z]{4}[0-9]{7}$/;
	if(!patrn.exec(_ce_boxNum))
	{
		alert('箱号[' + obj.value + ']格式错误!');
		common_focus(obj);
		return false;
	}
	//验证码校验算法
	var _ce_total_num=my_letter_array[(_ce_boxNum.charAt(0)).charCodeAt()-65] +
	my_letter_array[(_ce_boxNum.charAt(1)).charCodeAt() - 65] * 2 +
	my_letter_array[(_ce_boxNum.charAt(2)).charCodeAt() - 65] * 4 +
	my_letter_array[(_ce_boxNum.charAt(3)).charCodeAt() - 65] * 8 +
	_ce_boxNum.charAt(4) * 16 +
	_ce_boxNum.charAt(5) * 32 +
	_ce_boxNum.charAt(6) * 64 +
	_ce_boxNum.charAt(7) * 128 +
	_ce_boxNum.charAt(8) * 256 +
	_ce_boxNum.charAt(9) * 512;
	if(_ce_total_num % 11 != _ce_boxNum.charAt(10) && _ce_total_num % 11 != (_ce_boxNum.charAt(10) + 10))
	{
		alert('您输入的箱号[' + obj.value + ']错误!');
		common_focus(obj);
		return false;
	}
	return true;
}


/*
 * 函数入口，批量执行，
 * _name:input文本框的name,有2种，一种是同名name，输入name即可，另外一种是名称不同的类数组。输入aaaa[x]，其中[x]比不可少
 * _times,循环次数，默认为150
 */
function batch_box_validation(_name,_times)
{
	repeat_validate_array = new Array();
	if(/[x]/i.exec(_name))
	{
		if(_times == '' || _times == null)	
		{
			_times = 150;	
		}
		for(var flag = 0 ; flag < _times ; flag ++)
		{
			_objName = _name.replace(/\[x\]/i,'[' + flag + ']');
			var _obj = document.getElementsByName(_objName);
			if(_obj[0])
			{
				if(validate_box(_obj[0]) == false)
				{
					return;
				}
			}
		}
	}
	else
	{
		var vali_arrays = document.getElementsByName(_name)
		if(vali_arrays[0])
		{
			for(i = 0 ; i < vali_arrays.length ; i++)
			{
				if(validate_box(vali_arrays[i]) == false)
				{
					return;
				}	
			}
		}
	}
	alert("验证通过.");
}